Users of physical or virtual machines commonly install software packages, including package updates, to those machines. The software packages can contain a set of related files chosen to perform a given application or task, such as, for example, a group of software applications, drivers, and/or other resources used to install and use messaging or media applications. In instances, a software package can contain application software, operating system software, drivers, patches, and/or other software components grouped as a logical set.
Software package managers exist to help a user initiate and perform software package updates, such as, for example, the “yum” (Yellowdog update manager) package update manager available from Red Hat Inc., and others. In general, available software package managers are configured to interact with the set of installed packages on a client and with one or more software package repositories and associated package servers, to directly connect to those databases and download available package updates.
The process of managing package installations and initiating software package updates can involve, however, a significant degree of processing overhead, including when the managed network in which the host or client machines are installed is large. In those and other cases, tracking the package server may have to capture, store, register and manage a large database containing the identifiers of all the packages installed on each host machine in the managed network, as well as the attributes of that package, the host machine ID, and then register that information with the actual package update files stored in one or more associated package repositories. Processing that data, for instance to generate a collective package update for all machines on the network, can therefore involve a significant amount of processing overhead, including input/output overhead as package update files are identified, retrieved, and served to the host machines which are scheduled for a package update. In those large-scale and other network architectures, it would be advantageous to be able to consult a local or high-speed storage record of the package complements installed on machines in the managed network, without a need to communicate with those machines directly. It would likewise be advantageous to generate a compact representation of the cumulative set of installed packages on the machines in the network, and, optionally, to be able to store some or all of the associated package update files in a high-speed or local cache attached to the package server itself, so that package update files can be served without a need to access remote and/or lower-speed storage, and serve package updates to the host machines more efficiently. It may accordingly be desirable to provide systems and methods for generating cached representations of host package inventories in remote package repositories, in which a package server or other management platform can generate and manage encoded identifications of package installations from host machines in a managed network, and store those encoded identifiers, potentially with the corresponding package update files themselves, to a local cache memory for use in package updating, inventorying, and/or other activities.